/**
 * =============================================
 * 自定义异步分页函数
 * 创作者：学答也
 * 创建日期：2024-05-15 10:58:58
 * 联系方式：2304493354@qq.com
 * =============================================
 */

/**
 * 分页数据获取函数（符合指定返回结构）
 * @param {Object} params - 请求参数对象 
 * @param {number} params.page  - 当前页码（默认1）
 * @param {number} params.pageSize  - 每页数量（默认10）
 * @returns {Promise<{ data: { total: number, data: Array } }>} - 返回符合结构的数据 
 */
export default function fetchPaginatedData(params) {
	return new Promise((resolve, reject) => {
		setTimeout(() => {
			try {
				// 参数处理 
				const {
					page = 1, pageSize = 10, total = 60
				} = params;

				// 分页计算 
				const maxPage = Math.ceil(total / pageSize);
				if (page < 1 || page > maxPage) {
					throw new Error(`无效页码，有效范围：1-${maxPage}`);
				}

				// 生成模拟数据 
				const data = Array.from({
					length: pageSize
				}, (_, index) => {
					const itemNumber = (page - 1) * pageSize + index + 1;
					return {
						id: `item-${itemNumber}`,
						title: `数据条目 ${itemNumber}`,
						value: Math.random() * 100,
						createdAt: new Date(Date.now() - (index * 1000))
							.toISOString() // 时间倒序 
					};
				});

				// 返回符合要求的结构 
				resolve({
					data: {
						total: total,
						data: data
					}
				});
			} catch (error) {
				reject(error);
			}
		}, 300); // 300ms延迟模拟网络请求 
	});
};